#include<iostream>
using namespace std;
//自己写的错误版本
class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        vector<int> v; // 最后返回的结果
        int hash[10000] = {0};
        int hash2[10000] = {0};
        int sz = p.size();
        int cnt = 0;

        for (int i = 0; i < p.size(); i++) {
            hash2[p[i]]++; // 记录p字符串所有字符出现的次数
        }

        int left = 0;
        int right = 0;

        while (right < s.size()) {
            // 1：进窗口
            if (hash[s[right] == 0])
                cnt++;
            hash[s[right]]++;
            if (cnt == sz) { // 进行判断
                while (!hash[left++] == hash2[left++]) {
                    // 滑出窗口
                    hash[left]--;
                    right++;
                }
                // 相同
                v.push_back(hash[left]);
            }
            right++;
        }

        return v;
    }
};
